GSoC 2018 - Isabel Costa
#
Isabel CostaI proposed and worked on Mentorship System Backend and Android application. I was mentored by Dilushi, Murad, Roopal and May as an admin.
#
Work HoursDays | Hours (WEST = GMT+01) | Meeting | Tool |
---|---|---|---|
Monday | 10:00 - 18:00 | Scrum Check-in (5:00 PM) | Slack |
Tuesday | 10:00 - 18:00 | ------ | Slack |
Wednesday | 10:00 - 18:00 | Scrum Check-in (5:00 PM) | Slack |
Thursday | 10:00 - 18:00 | Team Weekly Meeting (4:00 PM) | Slack, Zoom |
Friday | 10:00 - 18:00 | Scrum Check-in (5:00 PM), GSoC Happy Hour (5:00 PM) | Slack, Zoom |
Saturday | 14:00 - 15:00 | ------ | Slack |
Sunday | 14:00 - 15:00 | ------ | Slack |
#
Short BioI'm an Android Developer and MSc student from Portugal. I'm in the final year of my Master's degree in Telecommunications and Informatics Engineering at Instituto Superior Técnico. I'm mostly interested in Android development, since 2016 when I started working on it. I really like to explore ideas and build projects from an idea into a final product.
#
Profile LinksGmail | GSoC Blog | Twitter | Github | LinkedIn | Medium Blog | GSoC 2018 Idea Proposal (partial) | GSoC 2018 Finalized Timeline Link?
#
Weekly UpdatesYou can find my updates here: Weekly Blog post and report status links, Scrum Check-ins, PRs sent.
#
Final Demo and ReportYou can find...
#
Weekly Status Report for Week 1What have you accomplished this week (list specific items accomplished)?
- Finished issue #3 - add .gitignore file
- Attended Mentorship Weekly Meeting
- Studied flask materials provided by my mentor and built sample project using Flask-RESTPlus
- Attended GSoC Happy Hour
- Created labels for mentorship-backend repository
- Started working on User Registration API
What issues or roadblocks have you encountered this week?
- Problems with PC.
- Thesis reunion and pending work.
- Lack of experience with backend development with Flask.
Have they been resolved, and if so, how?
- The PC is fixed.
- I’m still a newbie at backend development with flask, but I’m picking up.
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
Thesis reunion will still happen once a week, and I’ll have to work a bit more to prepare for Thesis preparation. To resolve this, I will continue to follow the action items by order and hope to pick up with the schedule in the buffer time defined in the timeline.
Is further assistance necessary to resolve existing issues?
One working session with my mentor to get a kick start with the framework.
What do you plan to accomplish next week?
Finish this week’s issues, and complete at least 1 issue from the next week
How does your progress compare to your project schedule?
I’m late in the schedule, according to the action items proposed on the timeline for 1º week.
Blog post for Week 1: Google Summer of Code | Coding Period | Week 1
#
Weekly Status Report for Week 2What have you accomplished this week (list specific items accomplished)?
Submitted PR with these features:
- Completed User actions endpoint
- User authentication to restrict API
- First User is an admin automatically
- Admin user can assign new admins POST /admin/new
- User can update its profile -> PUT /user
- Change Password feature in PUT /user/change_password
- Get all verified users with GET users/verified
- Login with {username, email}+password with POST /auth
- User registration in POST /register endpoint
- List all users with GET /users
- Published and shared Blog post for Week 1
- Attended Project Weekly Meeting
- Shared updates from the project with the community
What issues or roadblocks have you encountered this week?
- Thesis reunion and pending work.
- Lack of experience with backend development and testing with Flask.
Have they been resolved, and if so, how?
No. Although, I’m feeling more comfortable with developing with flask.
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
- Thesis work will continue until the first week of June.
- I’ve been testing with Postman, but I need to have software tests. I’m still searching for ways to test the REST API, in a modular way (e.g.: test DAO independently of testing database model, ...)
Is further assistance necessary to resolve existing issues?
N/A
What do you plan to accomplish next week?
- Complete Email verification feature.
- Have some test coverage.
- Start Mentorship Relation feature.
How does your progress compare to your project schedule?
Late on Email verification. On time with everything else.
Blog post for Week 2: Google Summer of Code | Coding Period | Week 2
#
Weekly Status Report for Week 3What have you accomplished this week (list specific items accomplished)?
- Added initial tests #16
- Fixed Swagger and Postman documentation #20
- Fixed PR template #27
- Had 1:1 with Murad, Dilushi and May
- Created issues for bug fixes and small features #17, #18, #19, #21, #22, #23
- Study ways to implement email verification
What issues or roadblocks have you encountered this week?
- Unable to test API resources, probably because of app structure
- Squashing commits
- Thesis
Have they been resolved, and if so, how?
- For tests, not yet.
- For squashing commits, had help from Dilushi.
- Regarding Thesis, not yet.
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
- I’m still studying about it tests
- Thesis work will end next week
Is further assistance necessary to resolve existing issues?
N/A
What do you plan to accomplish next week?
- Submit PR for email verification API
- Submit PR for mentorship relation API
- Setup support for environment variables
How does your progress compare to your project schedule?
Late on email verification and mentorship relation
Blog post for Week : Google Summer of Code | Coding Period | Week 3
#
Weekly Status Report for Week 4What have you accomplished this week (list specific items accomplished)?
- Created issues reported by Murad (#33, #34, #35)
- Solved above issues
- Created tests for app configurations (#37)
- Attended project weekly
- Reviewed Mentorship Relation feature in project weekly meeting
- Created issue for sending the expiry date on Login response #39
What issues or roadblocks have you encountered this week?
- Thesis final presentation
- API Resources Testing
Have they been resolved, and if so, how?
- Yes, it is presented!
- No
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
- N/A
- I’m still studying about it tests, planning to have a working session with Murad
Is further assistance necessary to resolve existing issues?
N/A
What do you plan to accomplish next week?
- Fill 1st Evaluations
- Complete Mentorship Relation feature
- Have tests for API resources
- Demo Mentorship System Backend in Community Open Session
- [stretch goal] Do email verification
How does your progress compare to your project schedule?
Late on email verification.
Blog post for Week: Google Summer of Code | Coding Period | Week 4
#
Weekly Status Report for Week 5What have you accomplished this week (list specific items accomplished)?
- Had 1:1 meeting with May
- Started working on mentorship send/listing request feature
- Had 1:1 meeting with Dilushi
- Attended Project weekly and clarified doubts about the database model and main features of the system
- Submitted PR #47 for sending a request (issue #10) and getting all mentorship requests (issue #46)
- Created new issues from bugs and feature clarification (#48, #49 and #50)
What issues or roadblocks have you encountered this week?
- Understand Mentorship System complex features and database model
Have they been resolved, and if so, how?
- Yes, this was clarified in the project weekly. To have a minimum viable product in the end of this program, we simplified some features
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
No
Is further assistance necessary to resolve existing issues?
N/A
What do you plan to accomplish next week?
- Complete Mentorship Relation related features (send, accept, reject, cancel requests)
- Setup issues for the second phase of the coding period
- Continue working on email verification feature
How does your progress compare to your project schedule?
Late on mentorship feature, email verification
Blog post for Week: Google Summer of Code | Coding Period | Week 5
#
Weekly Status Report for Week 6What have you accomplished this week (list specific items accomplished)?
- Submitted PR #41 to add support for using environment variables
- Submitted PR #53 for email verification - issues #7, #5 (need to fix according to the weekly meeting)
- Submitted PR #54 for creating the API to remove an Admin user - issue #17 (fixed logic according to the meeting)
- Created issue #52 to update restricted APIs to verify is user has email verified
- Organized issues on Zenhub according to dependant PRs and Issues
- Attended project weekly meeting, clarified some doubts
What issues or roadblocks have you encountered this week?
Thesis document fixes
Have they been resolved, and if so, how?
Yes, they’re done
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
No
Is further assistance necessary to resolve existing issues?
N/A
What do you plan to accomplish next week?
- Have completed accept/reject/cancel/complete
- Deploy Backend
- Share the deployed backend update with the community and ask for feedback and testing
- Refactor app to be able to test the API
- [stretch goal dependent on the stability of backend] Start working on Android Application
How does your progress compare to your project schedule?
I’m on time with the backend
Blog post for Week: Google Summer of Code | Coding Period | Week 6
#
Weekly Status Report for Week 7What have you accomplished this week (list specific items accomplished)?
- Had a 1:1 with Murad and another 1:1 with Dilushi
- Submitted PR #57 for applying the Application Factory pattern (important for testing the REST API services) issue #55 (merged)
- Submitted PR #58 for accepting mentorship relation API (merged)
- Submitted PR #62 for reject a mentorship request API (merged)
- Submitted PR #61 for cancel a mentorship request API (merged)
- Submitted PR #59 to update PR template, to update requirements.txt (merged)
- Finished email verification feature (PR #53)
- Submitted PR #64 for flask-jwt-extended integration
- Wrote blog post about mentorship system (motivation & about)
- Started working on a cron job to complete a mentorship relation
- Started working on exporting automatically generated postman.json and swagger.json
- Created issues to use flask-jwt-extended instead of flask-jwt
- Attended project weekly (cleared features logic doubts)
- Created issues #66 to eventually add an extra field to explain reasoning for mentorship cancellation
- Created issue #65 for a delete mentorship request API
What issues or roadblocks have you encountered this week?
- Application factory pattern PR merge
Have they been resolved, and if so, how?
Yes, it has been merged and I can now do API testing :D
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
No :D
Is further assistance necessary to resolve existing issues?
No!
What do you plan to accomplish next week?
TBD
How does your progress compare to your project schedule?
More productive than other weeks. Still on backend
Blog post for Week: Google Summer of Code | Coding Period | Week 7
#
Weekly Status Report for Week 8What have you accomplished this week (list specific items accomplished)?
- Submitted PR #73 for API to delete a mentorship request
- Submitted PR #74 for Get all mentorship requests API
- Submitted PR #75 to restrict GET /users API to authenticated users
- Submitted PR #79 with cron job to complete mentorship relation
- Attended Project Weekly
- Made Demo and presented Mentorship Systems backend on Community Open Session
- Got Mentorship System by Systers blog post published on Systers Open Source Medium publication
- Worked with Murad to solve server deployment issues
- Defined minimum features for the minimum functional product
What issues or roadblocks have you encountered this week?
- Cron job to complete mentorship relations
- Server deployed was failing to receive authorization header
Have they been resolved, and if so, how?
- Yes, its done, I tested interval and cron schedulers until I saw this working
- Yas! I worked with Murad to solve this issue
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
No
Is further assistance necessary to resolve existing issues?
No
What do you plan to accomplish next week?
- Have new wireframe for the minimum functional product
- Start working on the android app
- Improve overall Github documentation to guide potential contributors
- Decide on issues for newcomers, quality assurance (e.g.: manual and coding testing) with Dilushi
How does your progress compare to your project schedule?
On time regarding finishing the backend and heading towards the android app
Blog post for Week: Google Summer of Code | Coding Period | Week 8
#
Weekly Status Report for Week 9What have you accomplished this week (list specific items accomplished)?
- Created Quality Assurance Google Docs to guide contributors to test the backend
- Invited newcomers to test the backend and provided documentation for that
- Defined minimum features and timeline for phase 3
- Had 1:1s with May, Murad and Dilushi
- Created the high fidelity UI prototype (created issue #1 for this on systers/mentorship-android repo)
- Studied Material Design for the wireframe
- Fixed bug from issue #84, PR #85
- Looked into Android architecture design patterns
- Created with Dilushi the first issue #86 regarding Quality Assurance for the backend
- Attended project weekly meeting
- Created issue and discussed Tasks feature in project meeting
- Reserved time of the week (available on Google Calendar) and became available to answer any questions from newcomers (AMA - Ask Me Anything sessions)
What issues or roadblocks have you encountered this week?
No
Have they been resolved, and if so, how?
N/A
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
N/A
Is further assistance necessary to resolve existing issues?
N/A
What do you plan to accomplish next week?
- Improve UI according to feedback given by the community
- Study about Clean architecture
- Finish Tasks feature
- Attend Project Weekly meeting
- Start User arc feature in Android application
- Host more AMA sessions for newcomers
- Create issues for newcomers (stretch goal)
How does your progress compare to your project schedule?
On time to do the Android app!
Blog post for Week: Google Summer of Code | Coding Period | Week 9
#
Weekly Status Report for Week 10What have you accomplished this week (list specific items accomplished)?
- Hosted more AMA sessions
- Had first 1:1 with Roopal, my new mentor and a 1:1 with Murad
- Studied Android Architectures
- Worked on Tasks feature
- Fixed merge conflict of PRs #90 and #85 which are now merged
- Created issue #94 and submitted PR #95 to solve user registration data validation
- Submitted PR #89 imports database URI from environment variables (persistence to DB)
- Submitted PR #90 that adds organization field to User (occupation was already there)
- Reviewed PR #105 regarding change password request data validation
What issues or roadblocks have you encountered this week?
Learning Clean architecture
Have they been resolved, and if so, how?
Yes, I moved to learn another Architecture, MVVM, which seems less complex for a project being built from scratch. Clean architecture would add unnecessary complexity for this app.
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
No
Is further assistance necessary to resolve existing issues?
No
What do you plan to accomplish next week?
- Have User arc completed
- Start Mentorship Relation arc
- Fix more bugs found from the Backend
- Host more AMA sessions
- Present a Demo of Phase I & II
How does your progress compare to your project schedule?
Late on the Mobile app development, should have started the User arc already
Blog post for Week: Google Summer of Code | Coding Period | Week 10
#
Weekly Status Report for Week 11What have you accomplished this week (list specific items accomplished)?
- Had 1:1s: 1 w/ May, 3 w/ Murad, 1 w/ Dilushi
- Hosted AMA session for newcomers 3 Created issues on systers/mentorship-backend -> #115, #116
- Created issues on systers/mentorship-android -> #2, #3, #4, #5, #6, #7, #8, #9, #11
- Created “How to Contribute” page on Backend repository Wiki and created Wiki on systers/mentorship-android
- Reported bug #114, #120 and docs issue #120 on #sysbot
- Attended Project Weekly
- Exported UI screens from JustInMind UI prototype and saved them on GSoC18 folder
- Presented for Demo Phase I & II
- Shared in the community the Tasks feature logic decisions and potential scalability issue (which I researched a solution for)
- Add some markdown tables with some test cases on Quality Assurance issues
- Share the UI feedback Google Docs document for Q&A
- Updated the UI prototype in JustInMind tool and update the Feedback Google Docs
- Submitted PR #107 to solve issue #97 (already fixed merge conflicts)
- Had 1:1 Sammy about GitHub workflow with Sysbot and its commands
What issues or roadblocks have you encountered this week?
- Understanding RxJava, Android Architecture components, and best practises
- Tasks feature implementation
- Testing on Android
Have they been resolved, and if so, how?
- Mildly
- No
- No
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
- Sort of, since I’m still learning this
- Yes it still exists, thinking of doing a meeting to talk about this
- Yes, I’ll search about this, and check how it’s being done on Systers Android apps
Is further assistance necessary to resolve existing issues?
- No, because I already got this week from Murad
- Meet with mentors about this
- Will research about this
What do you plan to accomplish next week?
- Complete User arc and Mentorship and start Tasks arc
- Fix some bugs of Backend
- Start Tasks arc
- Manage more issues
- Attend Project Weekly
- Host more AMA sessions
How does your progress compare to your project schedule?
Late on the Android application
Blog post for Week: Google Summer of Code | Coding Period | Week 11
#
Weekly Status Report for Week 12What have you accomplished this week (list specific items accomplished)?
- Had 1:1 with Murad (discussed best practices for Android)
- Created .svg file of Current Relation icon
- Added Travis CI support to Android repository
- Submit PR #17 with my initial code (register, login, bottom nav)
- List Item UI of All Members list with ConstraintLayout (on my fork only)
- My Profile Screen UI with ConstraintLayout (on my fork only)
- Hosted AMA sessions
- Attended project weekly
- Created issues important for Android application #121 and #120 on Backend
- Solved issue #121 from backend (waiting on issue to be approved)
What issues or roadblocks have you encountered this week?
- Tasks scalability issue still has to be solved
- First PR took some time to be merged since is was the base for the authenticated fragments and Codacy alerted about some issues with the code and travis CI had to be set
Have they been resolved, and if so, how?
- No
- Yes, it was merged, Codacy warnings were fixed, and travis CI integrated
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
- Yes
- No
Is further assistance necessary to resolve existing issues?
- Yes, need to have a discussion with mentors
What do you plan to accomplish next week?
- Complete User and MentorshipRelation arc
- Decide on Tasks scalability issue
- Off-board the project
How does your progress compare to your project schedule?
Late on the Android application
Blog post for Week: Google Summer of Code | Coding Period | Week 12
#
Weekly Status Report for Week 13 [Optional]What have you accomplished this week (list specific items accomplished)?
- Submitted PR #123 for restructuring MentorshipRelation response to include Name (backend)
- Submit PR for listing Members Screen and Check others’ profiles (android)
- Had 1:1 with May
- Had 2 1:1s with Murad
- [Backend] Solve issue #124 on backend and sent PR #126
- Attended Weekly Meeting
- Removed “Program: GSoC” labels and added “Status: Available” to issues not completed during the program and ready to be worked by any contributor
- Created Wiki page with references to UI Design on systers/mentorship-android repo
- Created Wiki pages to explain a mentorship relation stages and states on systers/mentorship-android and systers/mentorship-backend repo
- [Android] Submit PR for Requests Screen
- Presented Final Demo
- Finished GSoC Final Report
- [Backend] Submitted Tasks feature
- Submitted Final Evaluations
- Submitted PR for README
- Started improving GitHub Wiki documentation
What issues or roadblocks have you encountered this week?
- Tasks scalability issue
- Final Demo
Have they been resolved, and if so, how?
- Yes its done!
- Yes, its done!
Do any of the issues or roadblocks still exist and what steps have been taken to resolve them?
- No
- No
Is further assistance necessary to resolve existing issues?
N/A
What do you plan to accomplish next week?
Help newcomers start working on issues and make the project welcome to everyone
How does your progress compare to your project schedule?
Ready to be worked on and welcome contributors!
Final Blog post: Google Summer of Code final remarks